/**
 * 
 */
package co.com.ebusiness.trader.dao.hibernate;

import java.util.List;

import org.apache.tapestry5.ioc.annotations.Inject;
import org.hibernate.Criteria;
import org.hibernate.Session;
import org.hibernate.criterion.MatchMode;
import org.hibernate.criterion.Restrictions;

import co.com.ebusiness.trader.core.model.Empresa;
import co.com.ebusiness.trader.dao.PrecioDao;
import co.com.ebusiness.trader.model.Precio;

/**
 * @author Luis Agudelo
 *
 */
public class PrecioDaoImpl implements PrecioDao {
	
	@Inject
	private Session session;
	
	
	public List<Precio> getAllPrecios(Empresa empresa){
		Criteria crit = session.createCriteria(Precio.class);
		crit.add(Restrictions.eq("empresa", empresa));
				
		return crit.list();
	}
	
	public void eliminarPrecio(Precio precio){
		session.delete(precio);
	}
	
	public void guardarPrecio(Precio precio){
		session.persist(precio);
	}
	
	public Precio getPrecio(int idPrec){
		Criteria crit = session.createCriteria(Precio.class);
        crit.add(Restrictions.eq("idPrec", idPrec));
        
        return (Precio)crit.uniqueResult();
	}
	
	
	public List<Precio> getPrecios(Empresa empresa, String partialName){
		Criteria crit = session.createCriteria(Precio.class);
		crit.add(Restrictions.eq("empresa", empresa));
        crit.add(Restrictions.ilike("nombre", partialName, MatchMode.ANYWHERE));
        
        return crit.list();
	}

}
